The short answer: As others have stated, you need to unpack the tuple you're returning, and then the values will be available to you:
invid, stock, published, price, invtype, title, author = read_one_file()
The long answer: This might be a tad long, but bear with me, because it is important information in understanding how various programming languages work. The problem you're having is an understanding of scope, the lifetime of variables in certain scopes, and how variables can be transferred between two different scopes. I'll do my best to touch on each of these, and how it relates to your problem.
Scope is essentially a section of your program in which certain variables you declare will exist. When you defined the function:
def read_one_file():
f = open('C:\Python27\inventory.dat', 'r')
invid = f.readline()
stock = f.readline()
published = f.readline()
price = f.readline()
invtype = f.readline()
title = f.readline()
author = f.readline()
return invid, stock, published, price, invtype, title, author
you defined the scope. The variables invid, stock, published, price, invtype, title, and author all exist in that function, and cease to exist once that function terminates. Python happens to be a very good visualizer of scope, since it is space/tab dependent. A new indentation level defines a new scope.
In order to get a variable/value out of the scope of a function, you can return it, as you have done in your function. But the portion of your program which is calling the function, has to specify variables in its own scope which will receive the values the function is returning. (And to receive the data, you assign the variable to result of the function: var = function() )
In your posted code, you called read_one_file() but did not assign any variables to its returned values. When you tried to access one of the values you thought you were returning:
print "Update Number In Stock"
print "----------------------"
print "Item ID: ", invid
invid is not technically a variable outside of read_one_file(), so an error occurs.
The key is that returning variables does not automatically transfer them, by name, to the scope of the callee (the code calling the function). You must specify a new variable in the callee to receive the returned value.
Hope this helps :)